/* @author cerimice */
package Dialogos.Modal.OrdenServicio;

import Logica.Dialogo.Entidad.Modal.DatosOrdenServicioDlgLogic;
import Persistencia.Definicion.OrdenServicio;
import Sistema.Configuracion;
import cerimice.ComboLista;
import com.vaadin.ui.*;
import java.util.logging.Logger;

public class DatosOrdenServicioDlg extends Window
    {
    private DatosOrdenServicioDlgLogic  logica;
    private TextField                   claveOrden,fechaEntrada,equipoDescripcion,equipoSerie;
    private TextArea                    equipoObservacion,equipoFalla;
    private ComboLista                  tipoServicio,equipoMarca;
    
    public DatosOrdenServicioDlg(String ordenServicio)
        {
        agregarComponentes(ordenServicio);
        }
    
    private void agregarComponentes(String ordenServicio)
        {
        logica   = new DatosOrdenServicioDlgLogic();
        
        claveOrden = new TextField("Folio",ordenServicio);
            claveOrden.setWidth("300px");
            claveOrden.setEnabled(false);
        fechaEntrada = new TextField("Fecha de ingreso");
            fechaEntrada.setWidth("300px");
            fechaEntrada.setEnabled(false);
        equipoDescripcion = new TextField("Descripción del equipo");
            equipoDescripcion.setWidth("300px");
            equipoDescripcion.setEnabled(false);
        equipoSerie = new TextField("Numero de serie");
            equipoSerie.setWidth("300px");
            equipoSerie.setEnabled(false);
            
        tipoServicio= new ComboLista("Tipo de Servicio");
            tipoServicio.setWidth("300px");
            tipoServicio.setEnabled(false);
        equipoMarca = new ComboLista("Marca del equipo");
            equipoMarca.setWidth("300px");
            equipoMarca.setEnabled(false);
            
        equipoObservacion = new TextArea("Observaciones del Equipo");
            equipoObservacion.setWidth("300px");
            equipoObservacion.setEnabled(false);
        equipoFalla = new TextArea("Falla en el Equipo");
            equipoFalla.setWidth("300px");
            equipoFalla.setEnabled(false);
            
        try
            {
            tipoServicio.addListItems(logica.getListaTipoServicio());
            equipoMarca.addListItems(logica.getListaMarca());
            }
        catch(Exception ex)
            {Logger.getLogger(this.getClass().getName()).log(Configuracion.nivelLoggin(),ex.getMessage());}
        
        HorizontalLayout datosOrden = new HorizontalLayout();
            datosOrden.setCaption("DATOS PARA ORDEN DE SERVICIO");
            VerticalLayout dataOrden = new VerticalLayout();
                VerticalLayout dataOrden1 = new VerticalLayout();
                    dataOrden1.setCaption("ORDEN DE SERVICIO");
                    dataOrden1.addComponent(claveOrden);
                    dataOrden1.addComponent(fechaEntrada);
                    dataOrden1.addComponent(tipoServicio);
                VerticalLayout dataOrden2 = new VerticalLayout();
                    dataOrden2.setCaption("DATOS DEL EQUIPO");
                    dataOrden2.addComponent(equipoDescripcion);
                    dataOrden2.addComponent(equipoMarca);
                    dataOrden2.addComponent(equipoSerie);
                dataOrden.addComponent(dataOrden1);
                dataOrden.addComponent(dataOrden2);
            VerticalLayout descripcionOrden = new VerticalLayout();
                descripcionOrden.setCaption("DESCRIPCIÓN DE LA ORDEN");
                descripcionOrden.addComponent(equipoObservacion);
                descripcionOrden.addComponent(equipoFalla);
            datosOrden.addComponent(dataOrden);
            datosOrden.addComponent(descripcionOrden);
        
        this.setContent(datosOrden);
        this.setModal(true);
        cargarDatos();
        }
    
    private void cargarDatos()
        {
        try
            {
            OrdenServicio obj = logica.getOrdenServicio((String)claveOrden.getValue());
            fechaEntrada.setValue(Configuracion.getFormatoFechaCorta().format(obj.getFechaEntrada()));
            tipoServicio.setSelectedKey(obj.getTipoServicio());
            equipoDescripcion.setValue(obj.getEquipoDescripcion());
            equipoMarca.setSelectedKey(obj.getEquipoMarca());
            equipoSerie.setValue(obj.getEquipoSerie());
            equipoObservacion.setValue(obj.getEquipoObservaciones());
            equipoFalla.setValue(obj.getEquipoFalla());
            }
        catch (Exception ex)
            {
            getWindow().showNotification("Información Orden de Servicio...","Problemas al recuperar la información",Notification.TYPE_WARNING_MESSAGE);
            Logger.getLogger(this.getClass().getName()).log(Configuracion.nivelLoggin(),ex.getMessage());
            }
        }
    }
